package com.kimu.user.service;

import com.kimu.user.entity.User;

public interface UserService {

	/*
	 * 根据用户id返回用户
	 */
	User findUserById(Long id);
	
	/*
	 * 根据用户名返回用户
	 */
	User findUserByUsername(String username);
	
	/*
	 * 添加一个用户，返回值大于0表示添加成功
	 */
	int addUser(User user);
	
	/*
	 * 修改一个用户，返回值大于0表示修改成功
	 */
	int updateUser(User user);
	
	/*
	 * 删除一个用户，返回值大于0表示删除成功
	 */
	int deleteUserById(Long id);

	/*
	 * 发送验证码，将验证码存储到redis中，返回值大于0表示成功新增一个验证码
	 * 要求用户在10分钟内最多发送3次验证码，使用redis的zset实现这个功能，key应该是注册用的邮箱，匹配时匹配最近的验证码
	 */
	int createValidCode(String email);

	/*
	 * 注册一个用户，前提是邮箱，密码，验证码都通过了验证，然后调用增加用户的服务
	 */
	int register(User user, String validCode);

	/*
	 * 登录，匹配用户名和密码，匹配成功返回User，不成功返回null
	 */
	User login(User user);
}
